<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Glassmorphism Skill Progress</title>
  <style>
    @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap");

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-family: "Poppins", sans-serif;
    }

    body {
      background: linear-gradient(135deg, #001524, #00384d);
      min-height: 100vh;
      display: flex;
      justify-content: center;
      align-items: center;
      overflow: hidden;
    }

    .container {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 40px;
      padding: 20px;
    }

    .card {
      position: relative;
      width: 250px;
      height: 300px;
      border-radius: 15px;
      background: rgba(255, 255, 255, 0.08);
      backdrop-filter: blur(12px);
      box-shadow: 0 15px 30px rgba(0, 0, 0, 0.4);
      overflow: hidden;
      transition: transform 0.4s ease, box-shadow 0.4s ease;
    }

    .card:hover {
      transform: translateY(-10px);
      box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
    }

    .percent {
      position: relative;
      width: 160px;
      height: 160px;
      margin: 50px auto 20px;
    }

    .percent svg {
      width: 160px;
      height: 160px;
      transform: rotate(-90deg);
      overflow: visible;
    }

    .percent circle {
      fill: none;
      stroke-width: 10;
      stroke-linecap: round;
    }

    .percent circle:first-child {
      stroke: rgba(255, 255, 255, 0.15);
    }

    .percent circle:last-child {
      stroke-dasharray: 440;
      stroke-dashoffset: 440;
      transition: stroke-dashoffset 1s ease;
      transform: translate(5px, 5px);
    }

    .card:hover circle:last-child {
      stroke-dashoffset: 0;
    }

    .number {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      flex-direction: column;
    }

    .number h2 {
      color: #fff;
      font-size: 45px;
    }

    .number span {
      font-size: 18px;
      color: #aaa;
    }

    .text {
      text-align: center;
      color: #fff;
      font-weight: 600;
      letter-spacing: 1px;
      text-transform: uppercase;
      font-size: 20px;
    }

    /* Gradient progress colors */
    .card:nth-child(1) circle:last-child {
      stroke: url(#grad1);
      stroke-dashoffset: calc(440 - (440 * 95) / 100);
    }

    .card:nth-child(2) circle:last-child {
      stroke: url(#grad2);
      stroke-dashoffset: calc(440 - (440 * 85) / 100);
    }

    .card:nth-child(3) circle:last-child {
      stroke: url(#grad3);
      stroke-dashoffset: calc(440 - (440 * 78) / 100);
    }

    /* Gradient definitions */
    svg defs linearGradient stop {
      transition: all 0.4s ease;
    }

    @keyframes glow {
      0% {
        filter: drop-shadow(0 0 5px #fff);
      }

      100% {
        filter: drop-shadow(0 0 20px #fff);
      }
    }

    .card:hover .percent svg circle:last-child {
      animation: glow 1s alternate infinite;
    }
  </style>
</head>

<body>
  <div class="container">
    <div class="card">
      <div class="percent">
        <svg viewBox="0 0 160 160">
          <defs>
            <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
              <stop offset="0%" stop-color="#f12711" />
              <stop offset="100%" stop-color="#f5af19" />
            </linearGradient>
          </defs>
          <circle cx="80" cy="80" r="70"></circle>
          <circle cx="80" cy="80" r="70"></circle>
        </svg>
        <div class="number">
          <h2>95<span>%</span></h2>
        </div>
      </div>
      <div class="text">HTML</div>
    </div>

    <div class="card">
      <div class="percent">
        <svg viewBox="0 0 160 160">
          <defs>
            <linearGradient id="grad2" x1="0%" y1="0%" x2="100%" y2="0%">
              <stop offset="0%" stop-color="#00c6ff" />
              <stop offset="100%" stop-color="#0072ff" />
            </linearGradient>
          </defs>
          <circle cx="80" cy="80" r="70"></circle>
          <circle cx="80" cy="80" r="70"></circle>
        </svg>
        <div class="number">
          <h2>85<span>%</span></h2>
        </div>
      </div>
      <div class="text">CSS</div>
    </div>

    <div class="card">
      <div class="percent">
        <svg viewBox="0 0 160 160">
          <defs>
            <linearGradient id="grad3" x1="0%" y1="0%" x2="100%" y2="0%">
              <stop offset="0%" stop-color="#f7971e" />
              <stop offset="100%" stop-color="#ffd200" />
            </linearGradient>
          </defs>
          <circle cx="80" cy="80" r="70"></circle>
          <circle cx="80" cy="80" r="70"></circle>
        </svg>
        <div class="number">
          <h2>78<span>%</span></h2>
        </div>
      </div>
      <div class="text">JavaScript</div>
    </div>
  </div>
</body>

</html>
